Merge branch 'master' of git.xfoto.com.cn:CarePatch/thermometer

huangqimin001 преди 3 години
родител
ревизия
52d2e5b9d1
променени са 6 файла, в които са добавени 118 реда и са изтрити 10 реда
  1. 23 0
      account/migrations/0003_auto_20210816_1054.py
  2. 20 9
      api/eqpt_views.py
  3. 4 0
      api/point_views.py
  4. 1 0
      docs/ctwon7rLz4.txt
  5. 54 0
      equipment/migrations/0009_auto_20210816_1054.py
  6. 16 1
      equipment/models.py

+ 23 - 0
account/migrations/0003_auto_20210816_1054.py

@@ -0,0 +1,23 @@
1
+# Generated by Django 2.2.15 on 2021-08-16 02:54
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('account', '0002_userinfo'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AlterField(
14
+            model_name='administratorinfo',
15
+            name='status',
16
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
17
+        ),
18
+        migrations.AlterField(
19
+            model_name='userinfo',
20
+            name='status',
21
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
22
+        ),
23
+    ]

+ 20 - 9
api/eqpt_views.py

@@ -79,10 +79,16 @@ def eqpt_onoff(request):
79 79
     macid = request.POST.get('macid', '')
80 80
     active = request.POST.get('active', 0)
81 81
 
82
-    ThermometerEquipmentInfo.objects.update_or_create(macid=macid, defaults={
83
-        'active_status': active,
84
-        'active_at': tc.utc_datetime(),
85
-    })
82
+    eqpt = ThermometerEquipmentInfo.objects.get(macid=macid)
83
+    eqpt.active_status = active
84
+    eqpt.active_at = tc.utc_datetime()
85
+    eqpt.save()
86
+
87
+    if active == 0:
88
+        user = IsolationPointUserInfo.objects.get(pk=eqpt.ipui_pk)
89
+        user.status = False
90
+        user.leave_at = tc.utc_datetime()
91
+        user.save()
86 92
 
87 93
     return response()
88 94
 
@@ -92,9 +98,14 @@ def eqpt_remark(request):
92 98
     macid = request.POST.get('macid', '')
93 99
     remark = request.POST.get('remark', '')
94 100
 
95
-    ThermometerEquipmentInfo.objects.update_or_create(macid=macid, defaults={
96
-        'remark': remark,
97
-    })
101
+    eqpt = ThermometerEquipmentInfo.objects.get(macid=macid)
102
+    eqpt.remark = remark
103
+    eqpt.save()
104
+
105
+    # 存放历史备注记录
106
+    user = IsolationPointUserInfo.objects.get(pk=eqpt.ipui_pk)
107
+    user.remark += [remark]
108
+    user.save()
98 109
 
99 110
     return response()
100 111
 
@@ -143,7 +154,7 @@ def eqpt_result(request):
143 154
     logs = ThermometerMeasureInfo.objects.filter(
144 155
         point_id=point_id,
145 156
         point_measure_ymd=tc.local_string(format='%Y-%m-%d'),
146
-        point_measure_window=point.point_measure_window,
157
+        point_measure_window=point.previous_measure_window,
147 158
         macid__in=macids,
148 159
         status=True,
149 160
     ).values('macid', 'temperature')
@@ -188,7 +199,7 @@ def get_screen_data(point=None, point_id=None):
188 199
     logs = ThermometerMeasureInfo.objects.filter(
189 200
         point_id=point_id,
190 201
         point_measure_ymd=tc.local_string(format='%Y-%m-%d'),
191
-        point_measure_window=point.point_measure_window,
202
+        point_measure_window=point.previous_measure_window,
192 203
         macid__in=macids,
193 204
         status=True,
194 205
     ).values('macid', 'temperature')

+ 4 - 0
api/point_views.py

@@ -6,6 +6,7 @@ from django_logit import logit
6 6
 from django_query import get_query_value
7 7
 from django_response import response
8 8
 from paginator import pagination
9
+from TimeConvert import TimeConvert as tc
9 10
 
10 11
 from equipment.models import IsolationPointInfo, IsolationPointUserInfo, ThermometerEquipmentInfo
11 12
 from utils.error.errno_utils import IsolationPointStatusCode
@@ -92,7 +93,10 @@ def bind_eqpt(request):
92 93
         return response(IsolationPointStatusCode.ISOLATIONPOINT_USER_NOT_FOUND)
93 94
 
94 95
     ThermometerEquipmentInfo.objects.update_or_create(macid=macid, defaults={
96
+        'point_id': ipui.point_id,
95 97
         'ipui_pk': ipui.pk,
98
+        'active_status': True,
99
+        'active_at': tc.utc_datetime()
96 100
     })
97 101
 
98 102
     return response()

+ 1 - 0
docs/ctwon7rLz4.txt

@@ -0,0 +1 @@
1
+440a5eaf195701404ec0ae4f50adefaf

+ 54 - 0
equipment/migrations/0009_auto_20210816_1054.py

@@ -0,0 +1,54 @@
1
+# Generated by Django 2.2.15 on 2021-08-16 02:54
2
+
3
+from django.db import migrations, models
4
+import jsonfield.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('equipment', '0008_auto_20210815_1731'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='isolationpointuserinfo',
16
+            name='leave_at',
17
+            field=models.DateTimeField(blank=True, help_text='离开时间', null=True, verbose_name='leave_at'),
18
+        ),
19
+        migrations.AddField(
20
+            model_name='isolationpointuserinfo',
21
+            name='remark',
22
+            field=jsonfield.fields.JSONField(blank=True, default=[], help_text='备注', null=True, verbose_name='remark'),
23
+        ),
24
+        migrations.AlterField(
25
+            model_name='isolationpointfieldpoolinfo',
26
+            name='status',
27
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
28
+        ),
29
+        migrations.AlterField(
30
+            model_name='isolationpointinfo',
31
+            name='status',
32
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
33
+        ),
34
+        migrations.AlterField(
35
+            model_name='isolationpointuserinfo',
36
+            name='status',
37
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
38
+        ),
39
+        migrations.AlterField(
40
+            model_name='thermometerequipmentinfo',
41
+            name='status',
42
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
43
+        ),
44
+        migrations.AlterField(
45
+            model_name='thermometermeasureinfo',
46
+            name='status',
47
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
48
+        ),
49
+        migrations.AlterField(
50
+            model_name='thermometermeasureloginfo',
51
+            name='status',
52
+            field=models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status'),
53
+        ),
54
+    ]

+ 16 - 1
equipment/models.py

@@ -118,7 +118,19 @@ class IsolationPointInfo(BaseModelMixin):
118 118
             start_t, end_t = window.get('start'), window.get('end')
119 119
             start_dt = tc.string_to_utc_datetime(f'{current_ymd} {start_t}:00')
120 120
             end_dt = tc.string_to_utc_datetime(f'{current_ymd} {end_t}:00')
121
-            if tc.utc_datetime(start_dt, minutes=-30) < current_dt < tc.utc_datetime(end_dt, minutes=30):
121
+            if tc.utc_datetime(start_dt) < current_dt < tc.utc_datetime(end_dt):
122
+                return f'{start_t}-{end_t}'
123
+        return ''
124
+    
125
+    @property
126
+    def previous_measure_window(self):
127
+        current_ymd = tc.local_string(format='%Y-%m-%d')
128
+        current_dt = tc.utc_datetime()
129
+        for window in self.point_measure_window:
130
+            start_t, end_t = window.get('start'), window.get('end')
131
+            start_dt = tc.string_to_utc_datetime(f'{current_ymd} {start_t}:00')
132
+            end_dt = tc.string_to_utc_datetime(f'{current_ymd} {end_t}:00')
133
+            if tc.utc_datetime(start_dt, minutes=60) < current_dt < tc.utc_datetime(end_dt, minutes=60):
122 134
                 return f'{start_t}-{end_t}'
123 135
         return ''
124 136
 
@@ -130,6 +142,9 @@ class IsolationPointUserInfo(BaseModelMixin):
130 142
 
131 143
     fields = JSONField(_('fields'), default=[], blank=True, null=True, help_text='字段信息')
132 144
 
145
+    remark = JSONField(_('remark'), default=[], blank=True, null=True, help_text='备注')
146
+    leave_at = models.DateTimeField(_('leave_at'), blank=True, null=True, help_text=_('离开时间'))
147
+
133 148
     class Meta:
134 149
         verbose_name = _('隔离点用户录入信息')
135 150
         verbose_name_plural = _('隔离点用户录入信息')